CREATE DATABASE CONDOMINIO
go

use CONDOMINIO
go

CREATE TABLE AREACOMUN
(
	codarea  INT  NOT NULL ,
	tipo  nvarchar(50)  NULL ,
	ubicacion  nvarchar(50)  NULL ,
	capacidad  INT  NULL 
)
go


ALTER TABLE AREACOMUN
	ADD CONSTRAINT  XPKAREACOMUN PRIMARY KEY   NONCLUSTERED (codarea  ASC)
go


CREATE TABLE CUOTA
(
	idcuota  INT  NOT NULL ,
	mes  nvarchar(2)  NOT NULL ,
	anio  nvarchar(4)  NOT NULL ,
	importe  money  NOT NULL ,
	fechavencimiento  DATETIME  NOT NULL ,
	numvivienda  INT  NOT NULL,
	estado  nvarchar(1)  NOT NULL
)
go


ALTER TABLE cuota
	ADD CONSTRAINT  PK_cuota PRIMARY KEY   NONCLUSTERED (idcuota  ASC)
go


CREATE TABLE RESERVA
(
	idreserva  INT  NOT NULL ,
	fecha  DATETIME  NULL ,
	cantidadpersonas  INT  NULL ,
	nombreresponsable  nvarchar(50)  NULL ,
	comentario  nvarchar(100)  NULL ,
	numvivienda  INT  NULL ,
	codarea  INT  NULL 
)
go


ALTER TABLE RESERVA
	ADD CONSTRAINT  XPKRESERVA PRIMARY KEY   NONCLUSTERED (idreserva  ASC)
go


CREATE TABLE TRANSACCIONPAGO
(
	idtransaccionpago INT NOT NULL,
	tipopago  nchar(1)  NOT NULL ,
	fechaoperacion  DATETIME  NULL ,
	idcuota  INT  NULL 
)
go


ALTER TABLE TRANSACCIONPAGO
	ADD CONSTRAINT  XPKTRANSACCIONPAGO PRIMARY KEY   NONCLUSTERED (idtransaccionpago  ASC)
go


CREATE TABLE RESIDENTE
(
	dni  nvarchar(50)  NOT NULL ,
	nombres  nvarchar(60)  NULL ,
	apellidopaterno  nvarchar(60)  NULL ,
	apellidomaterno  nvarchar(60)  NULL ,
	edad  INT  NULL ,
	correo  nvarchar(180)  NULL ,
	clave  nvarchar(16)  NULL ,
	tipo  nchar(1)  NOT NULL 
)
go


ALTER TABLE residente
	ADD CONSTRAINT  PK_residente PRIMARY KEY CLUSTERED (dni)
go


CREATE TABLE VIVIENDA
(
	numvivienda  INT  NOT NULL ,
	ubicacion  nvarchar(50)  NULL ,
	numero  INT  NULL ,
	metraje  INT  NULL ,
	tipo  nvarchar(1)  NULL ,
	dni  nvarchar(50)  NOT NULL 
)
go


ALTER TABLE vivienda
	ADD CONSTRAINT  PK_vivienda PRIMARY KEY CLUSTERED (numvivienda)
go



ALTER TABLE CUOTA
	ADD CONSTRAINT  R_2 FOREIGN KEY (numvivienda) REFERENCES VIVIENDA(numvivienda)
		ON DELETE NO ACTION
		ON UPDATE NO ACTION
go



ALTER TABLE RESERVA
	ADD CONSTRAINT  R_5 FOREIGN KEY (numvivienda) REFERENCES VIVIENDA(numvivienda)
		ON DELETE NO ACTION
		ON UPDATE NO ACTION
go


ALTER TABLE RESERVA
	ADD CONSTRAINT  R_6 FOREIGN KEY (codarea) REFERENCES AREACOMUN(codarea)
		ON DELETE NO ACTION
		ON UPDATE NO ACTION
go

ALTER TABLE TRANSACCIONPAGO
	ADD CONSTRAINT  R_4 FOREIGN KEY (idcuota) REFERENCES CUOTA(idcuota)
		ON DELETE NO ACTION
		ON UPDATE NO ACTION
go



ALTER TABLE vivienda
	ADD CONSTRAINT  FK_vivienda_residente FOREIGN KEY (dni) REFERENCES residente(dni)
go


